package com.njust.diary.util;

import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Setter
@Getter
public class Page<T>{
    private Integer pageNum;//当前页
    private Integer pageSize;//每页几条
    private long totalCount;//总记录数、
    private Integer totalPages;//总页数 向上取整
    private Integer prePage;
    private Integer nextPage;

    private Integer startNavPage; // 导航开始页 （当前页-5；如果当前页-5小于1，则导航开始页为1，此时导航结束页为导航开始数+9；如果导航开始数+9大于总页数，则导航结束页为总页数）
    private Integer endNavPage; // 导航结束页 （当前页+4；如果当前页+4大于总页数，则导航结束页为总页数，此时导航开始页为导航结束页-9；如果导航结束页-9小于1，则导航开始页为1）

    private List<T> dataList; // 当前页的数据集合 （查询数据库中指定页的数据列表）

    public Page(Integer pageNum, Integer pageSize, long totalCount) {
        this.pageNum = pageNum;
        this.pageSize = pageSize;
        this.totalCount = totalCount;
        this.totalPages=(int)Math.ceil(totalCount/(pageSize * 1.0));
        this.prePage =pageNum-1<1?1:pageNum -1;
        this.nextPage=pageNum+1>totalPages?totalPages:pageNum+1;
        this.startNavPage =pageNum-5;
        this.endNavPage=pageNum+4;
        if(this.startNavPage<1){
            this.startNavPage=1;
            this.endNavPage=this.startNavPage+9>totalPages?totalPages:this.startNavPage+9;

        }
        if(this.endNavPage>totalPages){
            this.endNavPage=totalPages;
            this.startNavPage=this.endNavPage-9<1?1:this.endNavPage-9;

        }


    }
}
